package modelo.test;

import java.util.Collection;
import java.util.Iterator;

import junit.framework.TestCase;
import junit.framework.TestSuite;
import modelo.enemigos.CreadorEnemigo;
import modelo.enemigos.CreadorHormiga;
import modelo.enemigos.ManejadorEnemigos;
import modelo.juego.Configuracion;
import modelo.juego.Jugador;
import modelo.mapa.Casillero;
import modelo.mapa.Mapa;
import modelo.obstaculos.ManejadorObstaculos;
import modelo.obstaculos.Obstaculo;
import modelo.obstaculos.CreadorObstaculo;
import modelo.obstaculos.CreadorObstaculoPegote;


public class PruebaManejadorObstaculos extends TestCase {

	private Mapa m = new Mapa(20);
	private Jugador j = new Jugador();
	private ManejadorEnemigos e;
	private ManejadorObstaculos mo;

	public void testManejadorObstaculos() {
		CreadorEnemigo tipoEnemigo = new CreadorHormiga();
		e = new ManejadorEnemigos(m, j, Configuracion.PERIODO_DE_GRACIA,
				tipoEnemigo);
		mo = new ManejadorObstaculos(m, e, j);

		assertNotNull(mo);
	}

	public void testCrearObstaculo() {
		CreadorEnemigo tipoEnemigo = new CreadorHormiga();
		CreadorObstaculo tipoObstaculo = new CreadorObstaculoPegote();
		
		e = new ManejadorEnemigos(m, j, Configuracion.PERIODO_DE_GRACIA, tipoEnemigo);
		mo = new ManejadorObstaculos(m, e, j);

		Casillero c = m.GetCasilleroXY(2, 4);
		c.setEsCamino(true);

		Collection<Obstaculo> obstaculos;
		Obstaculo o;

		mo.crearObstaculo(c, tipoObstaculo);

		obstaculos = mo.getObstaculos();
		assertTrue(!(obstaculos.isEmpty()));

		Iterator<Obstaculo> it = obstaculos.iterator();
		o = it.next();


	}

	public static TestSuite suite() {
		TestSuite suite = new TestSuite();
		suite.addTestSuite(PruebaManejadorObstaculos.class);
		return suite;
	}
}
